Some games and applications (hereinafter referred to as “applications”) use configuration data to perform functions. Configuration data for an application includes, for example, the difficulty of an enemy character in the game, the number of levels in a maze, and/or the reward provided to a player for completing an action. Some applications also use configuration data to send different data (e.g., images or text strings) to the user based on the native language of the user and/or the location from which the user is accessing the application.
In some existing systems, the application manages the configuration data. The application includes logic for selecting from among the possible values, determining which values are relevant for the current user, and displaying only those values to the user. For a different user interacting with the same application, a completely different set of values may be appropriate. The application is responsible for distinguishing between what data is appropriate for one user, and what data is appropriate for another. To modify the logic used to select configuration values, the provider of the application modifies application code, creates an application update based on the modified code, and publishes the application update. The modification becomes effective for each client only when the application update is installed at the client.